Java bytecode
part 4/8 Β· 23.1 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Generation
The most common language targeting Java virtual machine by producing Java bytecode is Java. Originally only one compiler existed, the javac compiler from Sun Microsystems, which compiles Java source code to Java bytecode; but because all the specifications for Java bytecode are now available, other parties have supplied compilers that produce Java bytecode. Examples of other compilers include:
β’ Eclipse compiler for Java (ECJ)
β’ Espresso, compiles from Java to Java bytecode (Java 1.0 only)
β’ GNU Compiler for Java (GCJ), compiles from Java to Java bytecode; it can also compile to native machine code and was part of the GNU Compiler Collection (GCC) up until version 6.
Some projects provide Java assemblers to enable writing Java bytecode by hand. Assembly code may be also generated by machine, for example by a compiler targeting a Java virtual machine. Notable Java assemblers include:
β’ Jasmin, takes text descriptions for Java classes, written in a simple assembly-like syntax using Java virtual machine instruction set and generates a Java class filecite-ref-6[6]
β’ Jamaica, a macro assembly language for the Java virtual machine. Java syntax is used for class or interface definition. Method bodies are specified using bytecode instructions.cite-ref-7[7]
β’ Krakatau Bytecode Tools, currently contains three tools: a decompiler and disassembler for Java classfiles and an assembler to create classfiles.cite-ref-8[8]
β’ Lilac, an assembler and disassembler for the Java virtual machine.cite-ref-9[9]
Others have developed compilers, for different programming languages, to target the Java virtual machine, such as:
β’ ColdFusion
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ